<?php
/**
 * 所有Actions的基类
 *
 * @package mvc
 * @author 
 **/
class Action {
	
	/**
	 * 系统输入数据
	 *
	 * @var array
	 **/
	protected $_request;
	
	/**
	 * 系统输出数据
	 *
	 * @var array
	 **/
	protected $_response;


	protected $_userinfo ;
	
	/**
	 * 
	 *
	 * @return void
	 * @author 
	 **/
	public function __construct() {
		$this->_request = $_REQUEST;
	}
	
	/**
	 * 全局的操作在这里进行，不可以被重写(overwrite)
	 * 为了防止一些全局变量被覆盖，可以定义为常量来使用
	 * @return void
	 * @author 
	 **/
	public final function before() {

		$this->_response['title'] = SYSTEM_TITLE;
		exec("rm -fr ./templates_c/*");
		exec("rm -fr ./cache/*");
		if (!in_array($this->_request['do'], json_decode(NOT_CHECK_LOGIN,true) )) {
			$login = new Login();
			$ret = $login->loginByCookie();
			if(!$ret){
				header("Location:index.php?do=index/login");
				die();
			}else{
				$this->_response['loginusername'] = $ret['UserName'];
			}
			//die();
		}

	}
	
	/**
	 * 在子类action的excute()方法调用之后被调用，不可以被重写(overwrite)，
	 * 可以写些通用的后续处理
	 * @return void
	 * @author 
	 **/
	public final function after() {
	
	}
	
	/*=============================== public get function =========================================*/
	
	/**
	 * 获取request内容
	 *
	 * @return array
	 * @author 
	 **/
	public function getRequest() {
		return $this->_request;
	}
	
	/**
	 * 设置request内容
	 * @param $request array
	 * @return void
	 * @author 
	 **/
	public function setRequest(&$request) {
		$this->_request = $request;
	}
	
	/**
	 * 获取response内容
	 *
	 * @return array
	 * @author 
	 **/
	public function getResponse() {
		return $this->_response;
	}
	
	/**
	 * 设置response内容
	 * @param $response array
	 * @return void
	 * @author 
	 **/
	public function setResponse(&$response) {
		$this->_response = $response;
	}

}
